Corporate enterprises typically comprise many computers that their employees use. For instance, an enterprise may employ thousands of such computers at various locations within a country or across the globe.
In such situations, the enterprise may endeavor to harmonize the configurations of the computers to, among other things, simplify administration of and maintenance for the computers. This may be particularly true in cases in which the computers are terminal computers that comprise an embedded operating system (i.e., an operating system stored in solid-state memory) that communicates with a central server to access programs that reside on the server.
There are various ways in which such harmonization can be achieved. The most common method is to install a master “disk” image on each computer. In that process, a master computer is configured so as to have a configuration that is desired for the other computers (i.e., the slave computers). Once configuration of the master computer is completed, a snapshot of its disk image is captured and distributed to each of the slave computers, typically over a network, and the image is deployed on each slave computer so that each will have the same configuration as the master computer.
Although the above-described method is viable, it is disadvantageous in terms of network bandwidth requirements. Specifically, when the entire disk image is to be redeployed for each slave computer, a relatively large amount of data is transmitted over the network (e.g., the Internet), when only the configuration data is actually required. In addition to consuming an undue amount of network bandwidth, this method can be particularly problematic when the disk image is being transmitted to remote offices via a satellite link or a dial-up connection.
Instead of transmitting the entire system disk to the slave computers, the configuration data alone can be transmitted to the slave computers. For instance, the registry entries of the master computer could be distributed to and deployed on each slave computer. Although such a solution reduces the amount of data that must be transmitted, it too has inherent drawbacks.
One drawback is that such a solution is an “all-or-nothing” solution in which all slave registry entries are replaced by the master registry entries. Such replacement may be undesirable in several circumstances. For example, if the slave computer comprises an application that the master computer does not, the registry entries for the application on the slave computer will be lost and the application will be orphaned. Alternatively, if the master computer comprises an application that the slave computer does not, orphaned registry entries will be implemented on the slave computer. In another case, the users of the slave computers may wish to maintain certain existing registry entries. For example, if the master computer is configured so that the computer's mouse is set for right-handed use, left-handed users may not wish the registry entry specifying right-handed use be implemented on their computers.
A further drawback is that, even if the master and slave computers comprise the same software (e.g., operating system, applications), the software on one computer may be a different version from that on another computer. For example, if the master computer comprises Program A, version 2.0, and the slave computers comprise Program A, version 1.0, the master registry entries may not be directly compatible with to the slave computer's Program A.